package algorithm.t202111;

/**
 * @author : 李红磊
 * @version :1.0
 * @date : 2021/11/26 9:26
 * @description :2道
 * 这几天都状态低迷，该恢复恢复斗志了，干。龙过生日吃饭，兄弟们八个又能聚在一起么，实属难得唉，就这样吧，或许这就是倒数第二次相聚？奈何过客匆匆，留下几两碎银。
 * persevere to last
 * 2021.11.26
 * 李红磊
 * 2021年11月26日18:34:46
 */
public class t20211126 {

    //700.二叉搜索树中的搜索
    public TreeNode searchBST(TreeNode root, int val) {
        return null;
    }

    //746.使用最小花费爬楼梯
    /*
    体力值  10  15  20
    水平线   0   1   2  天台
    一次最多可以跨两步。cost[i]为离开当前台阶需要的体力，水平线出发不花体力。

    如果离开水平线跨1步到了0级，耗费体力为0；然后离开0级跨一步或两步都是10体力，如果跨到2级，这时还没到天台，还要跨一步离开2级要20体力。所以共需要30体力。

    如果一开始跨2步直接到1级，花费0体力，然后离开1级跨两步直接上天台，花费15体力。所以共需要15体力
     */
    public int minCostClimbingStairs(int[] cost) {
        int len = cost.length;
        int[] dp = new int[len + 1];
        dp[0] = dp[1] = 0;
        for (int i = 2; i < len + 1; i++) {
            dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
        }
        return dp[len];
    }


}
